/*
 * canal.c
 *
 *  Created on: 09/09/2011
 *      Author: guido
 */

#include "canal.h"
#include "constantes.h"
#include "terminales-client.h"
#include "terminales-server.h"
#include <cstring>

Canal::Canal() : salida(ARCHIVO_BINARIO) {
	buffer = 0;
}

void Canal::enviarMensaje(char* &salida) {
	salida = new char[tamanyo];
	memcpy(salida, buffer, tamanyo);
	delete[] buffer; buffer = 0;
}

void Canal::recibirMensaje(char* entrada, int tamanyo) {
	buffer = new char[tamanyo];
	memcpy(buffer, entrada, tamanyo);
	salida.write(buffer, tamanyo);
	this->tamanyo = tamanyo;
}

int Canal::bufferSize() {
	return this->tamanyo;
}

Canal::~Canal() {
	salida.close();
	delete[] buffer;
}

bool Canal::binarioValido() {
	return (salida.good());
}
